<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
</head>

<body>
    <script>
        function fun1() {
            console.log(111);
        }
        // console.log(fun1.prototype);

        let obj = {
            name: "小明",
        };

        function Houyi(color) {
            this.color = color;
        }
        Houyi.prototype.kill = function() {
            alert("后羿会射箭，这个后羿的头发颜色是" + this.color);
        };

        console.log(Houyi.prototype);

        // 构造函数上有一个对象叫做原型，原型上的属性和方法能够被所有的实例化对象共享
        // 原型中除了有共享的方法和属性外 还有一个constructor属性指向构造函数本身
        let sundy = new Houyi("白色");
        console.log(sundy.__proto__);
        console.log(sundy.toLocaleString());
        //原型链 就是当实例对象使用一个方法的时候 如果自己有就用自己的 自己没有 看父类 有没有 父类也没有的话 找到顶层也就是object 看object 有没有 object也没有这个方法的话那就是undefined就会报错

        console.log(sundy);
    </script>
</body>

</html>